﻿using System;

namespace HostPc
{
    /**
    *  1、配置连接到AWSIOTCore的各项endpoint、证书。
    *  2、设置PUB、SUB的topic。
    *  3、设置此设备的上次活动时间，是为了确定当前设备是否还与AWSIOTCore连接。 */
    class Configuration
    {
        // AWSIoT连接相关参数
        public string awsiot_endpoint     = "a3nykbdwumdsv.ats.iot.cn-north-1.amazonaws.com.cn";          // 亚马逊云服务器地址
        public int awsiot_broker_port     = 8883;                                                         // 亚马逊云端口号，默认为8883
        public string path_AmazonRootCA1  = "D:/code/HostPc/Cert/AmazonRootCA1.crt";                      // AmazonRootCA1地址，需要其绝对地址
        public string path_certificate    = "D:/code/HostPc/Cert/certificate.pfx";                        // certificate地址，需要其绝对地址
        public string topic_pub           = "/host/123456/2remote/generator";                             // 当前hostpc的发布话题
        public string topic_sub           = "/remote/123456/2host/generator";                             // 当前hostpc的订阅话题
        public DateTime remote_last_alive = DateTime.Now;                                                 // 远程设备端的上次活跃时间
        public int reconnect_interval_seconds = 2;                                                 // 当与AWSIOTCore断连时，设置多久尝试一次连接

        // remote端控制参数
        public string lastwill_topic   = "/host/123456/state/generator";                                  // 设备影子的话题
        public string lastwill_payload = "{\"connected\":false}";                                    // 设备影子的发送内容，需要将json转换为string格式
        public string online_payload   = "{\"connected\":true}";

        // HostPc控制发送速率查看是否断线参数
        public uint      onduty_pub_span_seconds  = 1;                                                     // 有人值守时，HVG发送消息的频率，单位是秒
        public uint     unonduty_pub_span_minutes = 60;                                                   // 无人值守时，HVG发送消息的频率，单位是分钟
        public uint max_remotepc_unattend_minutes = 60;                                                   // 设置remotepc最大的不在线时间，超过此时间，则认为远程端无人值守，单位是分钟

        // RS232的SerialPort相关参数
        public string port_name = "COM3";                                                                 // HVG连接端的端口名
        public int baud_rate    = 19200;                                                                  // 设置传输的波特率

        /**
         * Configuration构造函数**/
        public Configuration() {

            reconnect_interval_seconds *= 1000;

        } // Configuration()

    } // class Configuration
    
} // namespace HostPc